iso-recursive type